The transmission control protocol (TCP) may use a slow start algorithm which is a very conservative initial transmission rate determination scheme. The transmission rate of TCP protocol may be expressed by a congestion window (cwnd) which means the number of segments that can be sent every round trip time (RTT). In order to find a suitable transmission rate, the slow start algorithm may begin at a very small cwnd (e.g., less than 4 KB, RFC3390) at first and then double the cwnd every RTT. This step may be referred to as a slow start step, a slow start state, or a slow start section. Therefore, if a proper cwnd of the current network path is N, log2N RTTs may be needed to reach the proper cwnd by the slow start algorithm. In other words, this may mean that the proper cwnd is not reached until approximately 2N data segments are transmitted. When the current cwnd reaches a proper cwnd state, this may be referred to as a congestion avoidance step or a congestion avoidance state.
Meanwhile, according to various Internet measurement studies, about 99% of the current Internet traffic is less than 100 KB in the total size of a flow, and about 95% or more of all web objects may be less than 90 KB. This means that most TCP flows will stay in a slow start state of not reaching the optimal cwnd until the entire transmission is completed. Accordingly, many techniques have been proposed to improve the inefficiency of the TCP slow start step. Such techniques, however, have a lot of constraints on deployment such as a change of a TCP transmitter, a change of an intermediate router between a transmitter and a receiver, and the like, thus being rarely used in reality.